package com.acme;


public class Test {
	public static void main(String[] args) {
		int v1 = 3;

        //требуется явное приведение типов при сужающих преобразованиях
		byte v2 = (byte) v1;
		System.out.println(v2);

		v1 = 256;
        //целочисленные литералы по умолчанию имеют тип int, сужающее преобразование
		byte v3 = (byte) v1;

        //произошло переполнение
		System.out.println(v3);

		int v4 = 's';
        //числовой код символа 's'
		System.out.println(v4);
		
		byte v5 = 115;
		if (v5 == 's') {
			System.out.println("Equals");
		}
		
		//4.0, очевидно
		System.out.println((double)4);

		double d = 5;
        //6.0 из-за промоушена
		System.out.println(d + 1);
		
		//Касты к булевому типу невозможны
        //boolean b = v4;
		
		//String - не примитивный тип => в отличие от char не кастится к целочисленному
		//short v6 = "short";

        //константы с плавающей точкой по умолчанию имеют тип double
		float v7 = 3.67f;

        //int -> float - это промоушн
		float v9 = 3;

        //а float -> int - нет :)
		int v8 = (int) v7;

        //1) размер массива - целое число, а не строка
        //2) int[] и double[] - несовместимые типы
		//int array[] = new double["27"];
		
	}
}
